import axios from 'axios'
export default class CoreApi {
    constructor(URL = '') {
        this.API_URL = URL == '' ? '/client/' : `http://${URL}/client/`
    }
    interceptors(router) {
        axios.interceptors.response.use((response) => {
            // 对响应数据做点什么
            //console.warn(response)
            if (response.data.code == 404) {
                router.push({ name: 'Login' })
            }
            return response;
        }, (error) => {
            // 对响应错误做点什么
            return Promise.reject(error);
        })
    }
    getserver() {
        return axios.get(this.API_URL + 'getserver').then((res) => {
            if (res.data.code == 404) {
                return []
            }
            res.data.map((e) => {
                e.configinfo = JSON.parse(e.configinfo)
                // e.status = 0
                return e
            })
            return res.data
        })
    }
    editserver(data) {
        return axios.post(this.API_URL + 'editserver', data).then((res) => {
            return res.data
        })
    }
    login(data) {
        return axios.post(this.API_URL + 'login', data).then((res) => {
            return res.data
        })
    }
    run(guid) {
        return axios.post(this.API_URL + 'runserver', { guid }).then((res) => {
            return res.data
        })
    }
    stop(guid) {
        return axios.post(this.API_URL + 'stopserver', { guid }).then((res) => {
            return res.data
        })
    }
    kill(guid) {
        return axios.post(this.API_URL + 'killserver', { guid }).then((res) => {
            return res.data
        })
    }
    changepass(id, pass) {
        return axios.post(this.API_URL + 'changepass', { id, pass }).then((res) => {
            return res.data
        })
    }
    initplugin(guid) {
        return axios.post(this.API_URL + 'initplugin', { guid }).then(res => { return res.data })
    }
    updategame(guid) {
        return axios.post(this.API_URL + 'updategame', { guid }).then(res => { return res.data })
    }
    getgameitem() {
        return axios.get(this.API_URL + 'getgameitem').then((res) => {
            return res.data
        })
    }
}